package com.service;

import com.entity.Comment;
import com.entity.Goods;
import com.dao.CommentDao;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
 * 评论物品管理service
 */
@Service
public class CommentService {

    @Autowired
    private CommentDao commentDao;

    /**
     * 添加评论。
     *
     * @param comment
     * @return The saved comment object, or null if save failed.
     */
    @Transactional
    public Comment save(Comment comment){
        int affectedRows = commentDao.save(comment);
        return (affectedRows > 0) ? comment : null;
    }

    /**
     * 根据商品 ID 查询评论列表。
     * @param goodsId The ID of the goods.
     * @return 评论列表。
     */
    @Transactional(readOnly = true)
    public List<Comment> findByGoodsId(Long goodsId) {
        return commentDao.findByGoodsId(goodsId);
    }

    /**
     * 查询所有评论（用于管理员）。
     */
    @Transactional(readOnly = true)
    public List<Comment> findAll() {
        return commentDao.findAll();
    }

    /**
     * 根据评论 ID 删除评论（用于管理员）。
     */
    @Transactional
    public boolean deleteById(Long id) {
        return commentDao.deleteById(id) > 0;
    }

    @Transactional(readOnly = true)
    public Comment findById(Long id) {
        return commentDao.findById(id);
    }

    /**
     * 查询所有被举报的评论（用于管理员）。
     */
    @Transactional(readOnly = true)
    public List<Comment> getReportedComments() {
        return commentDao.findReported();
    }
}
